package com.yuandian.business.monitor.service;

import com.yuandian.api.business_monitor.po.UsersOperationsParams;
import com.yuandian.utils.PageDataInfo;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * <p>
 * 查询用户信息
 * </p>
 *
 * @author zuokun
 * @since 2021-12-6
 */
public interface IUserOperationsService {
    /**
     * 查询用户操作概况
     * @param params
     * @return
     */
	PageDataInfo queryUsersOperationsOverview(UsersOperationsParams params);

    /**
     * 查询XX用户操作统计
     * @param params
     * @return
     */
	PageDataInfo queryUserOperationsStatistics(UsersOperationsParams params);

    /**
     * XX用户-XX业务-操作详情
     * @param params
     * @return
     */
	PageDataInfo queryUserBusinessOperationsDetail(UsersOperationsParams params);

    /**
     * XXX用户操作轨迹
     * @param params
     * @return
     */
	Object queryUserOperationsTrajectory(UsersOperationsParams params);

    /**
     * 导出用户操作概况列表Excel文件
     * @param params 用户操作统计查询参数
     */
    void exportUsersOperationsOverview(UsersOperationsParams params, HttpServletResponse response) throws IOException;

    /**
     * 导出XX用户操作统计列表Excel文件
     *
     * @param params 用户操作概况查询参数
     */
    void exportUserOperationsStatistics(UsersOperationsParams params, HttpServletResponse response) throws IOException;

    /**
     * 导出XX用户XX业务操作详情列表Excel文件
     * @param params 用户操作概况查询参数
     */
    void exportUserBusinessOperationsDetail(UsersOperationsParams params, HttpServletResponse response) throws IOException;

	/**
	 * 查询用户统计数据
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param systemId 系统ID
	 * @param businessCode 业务编码
	 * @return 统计数
	 */
	public int queryBusiUserCount(String startTime, String endTime, int systemId, String businessCode);

	/**
	 * 查询异常用户统计数据
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * @param systemId 系统ID
	 * @param businessCode 业务编码
	 * @return 统计数
	 */
	public int queryBusiUserExcepitonCount(String startTime, String endTime, int systemId, String businessCode);
}
